package tool

import tool.Pojo.ReportHomeData

/**
 * Created by Administrator on 2019/10/11
 */
object ReportPojo {

  case class TableData(headers: Seq[String], rows: Seq[Seq[String]])

  case class ColorTableData(headers: Seq[String], rows: Seq[Seq[(String, String)]])

  case class ConfigData(pValue: String, fdr: String, log2FC: String, vip: String, libTypes: Seq[String],
                        libTypesAbbr: Seq[String], species: String, cor: String,
                        corP: String, groups: Seq[String], rfTop: String, svmTop: String, isMul: Boolean,
                        isSelfCor: Boolean, isCor: Boolean,
                        isParCor: Boolean, isEnrichExec: Boolean, isPathwayExec: Boolean, isIPathExec: Boolean,
                        isDiagnoseExec: Boolean)

  case class ResultData(uniDiffSize: Int, corDir: Option[String], pathwayDir: Option[String], diagnoseDir: Option[String],
                        markers: ColorTableData, potentialDir: String, uniDir: String, hasBubble: Boolean, keggIds: List[String],
                        hasVennPlot: Boolean, hasEnrichMap: Map[String, Boolean])

  case class OuterData(extraDatas: Seq[String], hasQc: Boolean)

  case class OutConfigData(withRatio: Boolean)

  case class ReportData(sampleInfo: TableData, superClassCount: Int, treats: Seq[String],
                        configDatas: Seq[ConfigData], resultDatas: Seq[ResultData], outerData: OuterData,
                        reportHome: ReportHomeData, extraData: ExtraData, outConfigData: OutConfigData, summaryData: SummaryData)

  case class UploadData(dirName: String, exist: Boolean, parExist: Boolean)

  case class SummaryData(hasSigMet: Boolean, sigMetTable: TableData, hasSelfCor: Boolean, uploads: Seq[UploadData])

  case class ExtraData(time: String)

  case class ReportInfo(isMet: Boolean = false, isHuiyun: Boolean = false, phone: String = "", isHuiyunLab: Boolean = false,
                        isLiuyuan: Boolean = false, isXxx: Boolean = false)


}
